/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package org.ing.sisval.da;

import java.sql.Connection;
import java.util.ArrayList;
import org.ing.sisval.be.BEValuacionComplementario;
import org.rx.cr.dao.DAOAbstract;

/**
 *
 * @author Mysham
 */
public class DAValuacionComplementario extends DAOAbstract<BEValuacionComplementario> {

    public DAValuacionComplementario(Connection conn) {
        setConnection(conn);
    }

    @Override
    public int registrar(BEValuacionComplementario be) throws Exception {
        try {
            setStoreProcedure("SISVAL.sp_ins_valuacioncomplementario");
            setParameterDouble(be.getValorTotal());
            setParameterInt(be.getDepreciacionid());
            setParameterDouble(be.getPorcentajeDerecho());
            setParameterDouble(be.getValorAdicional());
            setParameterString(be.getNombre());
            setParameterDouble(be.getMedida());
            setParameterDouble(be.getValorEstado());

            return Integer.parseInt(commit().toString());
        } catch (Exception e) {
            return rollback(e);
        }
    }

    @Override
    public int actualizarRegistro(BEValuacionComplementario be) throws Exception {
        try {
            setStoreProcedure("SISVAL.sp_upd_valuacioncomplementario");
            setParameterInt(be.getValuacioncomplementarioid());
            setParameterDouble(be.getValorTotal());
            setParameterInt(be.getDepreciacionid());
            setParameterDouble(be.getPorcentajeDerecho());
            setParameterDouble(be.getValorAdicional());
            setParameterString(be.getNombre());
            setParameterDouble(be.getMedida());
             setParameterDouble(be.getValorEstado());

            return Integer.parseInt(commit().toString());
        } catch (Exception e) {
            return rollback(e);
        }
    }

    @Override
    public int eliminarRegistro(BEValuacionComplementario be) throws Exception {
        try {
            setStoreProcedure("SISVAL.sp_del_valuacioncomplementario");
            setParameterInt(be.getValuacioncomplementarioid());

            return Integer.parseInt(commit().toString());
        } catch (Exception e) {
            return rollback(e);
        }
    }

    @Override
    public ArrayList<BEValuacionComplementario> buscarReferencia(String string) throws Exception {
        try {
            clear();
            setStoreProcedure("SISVAL.sp_sel_valuacioncomplementario");
            setParameterString(string);
            commitc();
            while (existResult()) {
                BEValuacionComplementario be = new BEValuacionComplementario();
                be.setValuacioncomplementarioid(getDataInt(1));
                be.setValorTotal(getDataDouble(2));
                be.setDepreciacionid(getDataInt(3));
                be.setPorcentajeDerecho(getDataDouble(4));
                be.setValorAdicional(getDataDouble(5));
                be.setNombre(getDataString(6));
                be.setMedida(getDataDouble(7));
                be.setValorEstado(getDataDouble(8));

                add(be);
            }
            return getLista();
        } catch (Exception e) {
            rollback(e);
            return null;
        }
    }

    @Override
    public ArrayList<BEValuacionComplementario> listar() throws Exception {
        try {
            clear();
            setStoreProcedure("SISVAL.sp_sel_valuacioncomplementario");
            setParameterString("");
            commitc();
            while (existResult()) {
                BEValuacionComplementario be = new BEValuacionComplementario();
                be.setValuacioncomplementarioid(getDataInt(1));
                be.setValorTotal(getDataDouble(2));
                be.setDepreciacionid(getDataInt(3));
                be.setPorcentajeDerecho(getDataDouble(4));
                be.setValorAdicional(getDataDouble(5));
                be.setNombre(getDataString(6));
                be.setMedida(getDataDouble(7));
                be.setValorEstado(getDataDouble(8));

                add(be);
            }
            return getLista();
        } catch (Exception e) {
            rollback(e);
            return null;
        }
    }

    @Override
    public BEValuacionComplementario buscar(int i) throws Exception {
        try {
            BEValuacionComplementario be = null;
            setStoreProcedure("SISVAL.sp_sel_valuacioncomplementario_id");
            setParameterInt(i);
            commitc();
            while (existResult()) {
                be = new BEValuacionComplementario();
                be.setValuacioncomplementarioid(getDataInt(1));
                be.setValorTotal(getDataDouble(2));
                be.setDepreciacionid(getDataInt(3));
                be.setPorcentajeDerecho(getDataDouble(4));
                be.setValorAdicional(getDataDouble(5));
                be.setNombre(getDataString(6));
                be.setMedida(getDataDouble(7));
                be.setValorEstado(getDataDouble(8));

            }
            return be;
        } catch (Exception e) {
            rollback(e);
            return null;
        }
    }

    public int obtenerUltimoId() throws Exception {
        BEValuacionComplementario be = new BEValuacionComplementario();
        try {
            setStoreProcedure("sisval.sp_obteneridValuacionComplementario");
            while (existResult()) {
                be.setValuacioncomplementarioid(getDataInt(1));
            }

            return Integer.parseInt(commit().toString());

        } catch (Exception e) {
            return rollback(e);
        }
    }

}
